<?php


    function cross_app_link_to($app, $route, $args = null){
        $host = sfContext::getInstance()->getRequest()->getHost();
        $env = sfConfig::get('sf_environment');
        //get the link to the routing file
        $appRoutingFile = sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$app.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'routing.yml';
        //get the routing file
        $route = substr($route, 0, strlen($route));
        if(file_exists($appRoutingFile)){
            $yml = sfYaml::load($appRoutingFile);
            $routeUrl = $yml[$route]['url'];
            if($args){
                foreach($args as $k => $v){
                    $routeUrl = str_replace(':'.$k, $v, $routeUrl);
                }
            }
            if(strrpos($routeUrl, '*') == strlen($routeUrl) - 1){
                $routeUrl = substr($routeUrl, 0, strlen($routeUrl) - 2);
            }
        }
        if($env == 'dev'){
            $path = 'http://'.$host.'/'.$app.'_dev.php'.$routeUrl;
        }
        else{

           $path = 'http://'.$host;
           if($app != 'frontend')
               $path .= '/'.$app.'.php';
           $path .= $routeUrl;
        }
        return $path;
    }
?>
